home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1986-05-03 | 6.6 KB | 238 lines |
- 10 :
- 20 REM *********************************
- 30 :
- 40 REM * PROGRAMED BY JEFF SCHUNICHT *
- 50 :
- 60 REM * 5-12-1983 *
- 70 :
- 80 REM * FOR THE I B M *
- 90 :
- 100 ' * PERSONAL COMPUTER *
- 110 :
- 120 ' *********************************
- 130 KEY OFF:SCREEN 0,1:COLOR 15,0,0:WIDTH 40:CLS:LOCATE 4,7:PRINT "A JEFF SCHUNICHT PROGRAM "
- 140 LOCATE 7,13:PRINT "FOR THE I B M ":LOCATE 9,11:PRINT "PERSONAL COMPUTER"
- 150 COLOR 10,0:LOCATE 13,8,0:PRINT CHR$(201)+STRING$(21,205)+CHR$(187)
- 155 LOCATE 14,8,0:PRINT CHR$(186)+" FLASH CARD "+CHR$(186)
- 160 LOCATE 15,8,0:PRINT CHR$(186)+STRING$(21,32)+CHR$(186)
- 170 LOCATE 16,8,0:PRINT CHR$(186)+" Version 1.00 "+CHR$(186)
- 180 LOCATE 17,8,0:PRINT CHR$(200)+STRING$(21,205)+CHR$(188)
- 200 COLOR 18,0:LOCATE 23,6,0:PRINT "Press space bar to continue"
- 210 KY$=INKEY$
- 220 IF KY$="" THEN GOTO 210
- 230 IF KY$<>" " THEN GOTO 210
- 240 CLS:CLEAR:SCREEN 1,0:COLOR 0,0
- 250 RANDOMIZE (VAL(MID$(TIME$,2,1))*4+VAL(MID$(TIME$,5,2))*3+VAL(MID$(TIME$,8,1)))
- 260 SCREEN 1
- 270 TROFF
- 280 COLOR 0,4
- 290 KEY OFF
- 350 'YOU CAN CHANGE THE LEVEL HERE BY JUST CHANGING LINES 360 & 390
- 360 PRINT "LEVEL (1-10) OR ENTER A ZERO TO QUIT"
- 365 INPUT "ENTER LEVEL HERE: ",LEV
- 370 TAAB=1
- 380 CLS
- 390 IF LEV<1 OR LEV>10 THEN GOTO 5000
- 400 PRINT "WOULD YOU LIKE TO MULTIPLY,DIVIDE,ADD,OR SUBTRACT (ONLY THE FIRST LETTER)";
- 410 SIGN$=INKEY$:IF SIGN$="" THEN GOTO 410
- 420 LEV1=LEV
- 430 CLS
- 440 AZ$=SIGN$
- 450 IF AZ$="A" OR AZ$="a" THEN SIGN=1 :GOTO 500
- 460 IF AZ$="S" OR AZ$="s" THEN SIGN =2:GOTO 500
- 470 IF AZ$="M" OR AZ$="m" THEN SIGN =3:GOTO 500
- 480 IF AZ$="D" OR AZ$="d" THEN SIGN =4 :GOTO 500
- 490 CLS:GOTO 400
- 500 LEV=(LEV+1)^2+1
- 510 FOR MMM=1 TO 8
- 520 NUM1=INT(RND(1)*LEV)
- 530 NUM2=INT(RND(1)*LEV)
- 540 IF NUM2>NUM1 THEN NUM=NUM1:NUM1=NUM2:NUM2=NUM
- 550 IF LEV1<3 THEN GOTO 560:ELSE IF SIGN=1 THEN NUM1=NUM1*3:NUM2=NUM2*3
- 560 IF SIGN=2 THEN NUM1=NUM1+NUM2:IF LEV>3 THEN NUM1=NUM1*2
- 570 IF SIGN=4 AND NUM2=0 THEN GOTO 530
- 580 IF SIGN=4 THEN NUM1=NUM1*NUM2
- 590 NUM1$=STR$(NUM1)
- 600 LOT=15:TAAB=240-LEN(NUM1$)*35
- 610 G=LEN(NUM1$)-2:
- 620 Q$=NUM1$
- 630 FOR LNGTH=0 TO G
- 640 MI$=MID$(NUM1$,LNGTH+2,1)
- 650 MID=VAL(MI$):ON MID GOSUB 2000,2090,2150,2230,2290,2370,2450,2510,2560:IF MID=0 THEN GOSUB 2600
- 660 NEXT LNGTH
- 670 LOT=LOT +50:TAAB=240-(LEN(Q$)+1)*35
- 675 IF SIGN=4 THEN TAAB=TAAB+35
- 680 ON SIGN GOSUB 2720,2650,2825,2750
- 690 NUM2$=STR$(NUM2)
- 700 G=LEN(NUM2$)-2
- 710 TAAB=240-LEN(NUM2$)*35
- 720 FOR LNGTH=0 TO G
- 730 MI$=MID$(NUM2$,LNGTH+2,1)
- 740 MID=VAL(MI$):ON MID GOSUB 2000,2090,2150,2230,2290,2370,2450,2510,2560:IF MID=0 THEN GOSUB 2600
- 750 NEXT LNGTH
- 755 LN=200-LEN(Q$)*35
- 760 LINE(LN+LEN(Q$)*35,LOT+50)-(LN,LOT+52),2,BF:LOT=LOT+60
- 780 LOCATE 1,1:PRINT "PRESS SPACE BAR FOR A DIFFERENT EQUATION"
- 785 ANS2$=STR$(ANS2)
- 790 TBBB=240-LEN(ANS2$)*35
- 800 TAAB=TBBB
- 810 REM **** GET ANSWER FROM PLAYER AND CHECK ****
- 820 DEF SEG=0:POKE 1050,PEEK(1052)
- 830 F$=INKEY$
- 835 KEY (12) ON
- 840 ON KEY(12) GOSUB 3030
- 850 IF F$="" THEN GOTO 830
- 860 IF F$=" " THEN TRY=3:ANS=-1:GOTO 1110
- 865 IF F$="q" OR F$="Q" THEN CLS:GOTO 280
- 870 IF S<1 AND F$=CHR$(13) THEN ANS=-1:GOTO 1050
- 880 IF F$="0" AND (ANS2=0 OR S>0) THEN GOTO 950
- 890 IF F$=CHR$(13) THEN GOTO 1050
- 900 IF F$="0" THEN 830
- 920 IF F$<"/" OR F$>":" THEN 830
- 930 KEY (12) OFF
- 950 REM
- 960 PREVTAAB=TAAB
- 970 IF S>(LEN(ANS2$)-1) THEN GOTO 1050
- 980 S=S+1:F$(S)=F$
- 990 F(S)=VAL(F$(S))
- 1000 ANN=VAL (F$)
- 1010 T(S)=35
- 1020 ON ANN GOSUB 2000,2090,2150,2230,2290,2370,2450,2510,2560:IF ANN=0 THEN GOSUB 2600
- 1040 GOTO 830
- 1050 FOR A = 1 TO S
- 1060 ANS=ANS+F(A)*10^(S-A)
- 1070 NEXT A
- 1071 IF ANS=ANS2 THEN 1120
- 1080 LINE (TBBB,LOT+50)-(TAAB +35,LOT),2
- 1090 LINE(TBBB,LOT)-(TAAB +35,LOT+50),2
- 1100 FOR TTT=1 TO 300:NEXT TTT
- 1103 A=1:ANS=0:S=0:FOR Y=1 TO 4:F$(Y)="":F(Y)=0:NEXT Y
- 1110 BEEP:LINE (0,LOT)-(319,190),0,BF:TAAB=TBBB:TRY=TRY+1:IF TRY>2 THEN GOSUB 1190:ELSE GOTO 830 REM ERASE ANSWER
- 1120 A=1:ANS=0:S=0:FOR Y=1 TO 4:F$(Y)="":F(Y)=0:NEXT:
- 1140 FOR HH=1 TO 800:NEXT HH:CLS
- 1150 TRY=0:TAAB=TBBB:CLS:NUM1=0:NEXT MMM
- 1160 IF WRONG>3 THEN W$="NOT GOOD ":ELSE W$="VERY GOOD "
- 1170 FOR B=1 TO 100:PRINT W$;:NEXT:CLS:PRINT:PRINT "YOU GOT "8-WRONG" OUT OF 8 RIGHT ":FOR DLY=1 TO 600:NEXT DLY:WRONG=0:GOTO 360
- 1180 REM **** PRINT CORRECT ANSWER ****
- 1190 WRONG=WRONG+1
- 1270 IF TAAB>285 THEN TAAB=1:LOT=LOT+50
- 1280 G=LEN(ANS2$)-2
- 1290 FOR LNGTH=0 TO G
- 1300 MI$=MID$(ANS2$,LNGTH+2,1)
- 1310 MID=VAL(MI$):ON MID GOSUB 2000,2090,2150,2230,2290,2370,2450,2510,2560:IF MID=0 THEN GOSUB 2600
- 1330 NEXT LNGTH
- 1390 RETURN
- 2000 REM ***** SET UP SHAPE TABLES *****
- 2001 XX=TAAB+5:YY=LOT
- 2010 LINE (6+XX,YY)-(11+XX,35+YY),1,BF
- 2020 LINE (6+XX,YY)-(3+XX,2+YY),1
- 2030 LINE (2+XX,2+YY)-(6+XX,2+YY),1
- 2040 LINE (XX,35+YY)-(17+XX,40+YY),1,BF
- 2050 PAINT (6+XX,6+YY),1,1
- 2055 TAAB=TAAB+35
- 2060 RETURN
- 2090 REM ***** TWO *****
- 2091 XX=TAAB:YY=LOT
- 2100 LINE (2+XX,0+YY)-(25+XX,5+YY),1,BF
- 2110 LINE (20+XX,0+YY)-(25+XX,25+YY),1,BF
- 2120 LINE (2+XX,25+YY)-(25+XX,20+YY),1,BF
- 2130 LINE (2+XX,25+YY)-(7+XX,35+YY),1,BF
- 2140 LINE (2+XX,35+YY)-(25+XX,40+YY),1,BF
- 2145 TAAB=TAAB+35
- 2146 RETURN
- 2150 REM **** THREE ****
- 2151 XX=TAAB:YY=LOT
- 2160 LINE (XX,0+YY)-(30+XX,5+YY),1,BF
- 2170 LINE (0+XX,20+YY)-(30+XX,25+YY),1,BF
- 2180 LINE (25+XX,0+YY)-(30+XX,40+YY),1,BF
- 2190 LINE (0+XX,35+YY)-(30+XX,40+YY),1,BF
- 2191 TAAB=TAAB+35
- 2225 RETURN
- 2230 REM *** FOUR ****
- 2231 XX=TAAB:YY=LOT
- 2240 LINE (0+XX,0+YY)-(5+XX,25+YY),1,BF
- 2250 LINE (25+XX,0+YY)-(30+XX,40+YY),1,BF
- 2260 LINE (5+XX,25+YY)-(25+XX,20+YY),1,BF
- 2265 TAAB=TAAB+35
- 2286 RETURN
- 2290 REM ***** FIVE *******
- 2291 XX=TAAB:YY=LOT
- 2300 LINE(0+XX,0+YY)-(30+XX,5+YY),1,BF
- 2310 LINE(0+XX,15+YY)-(30+XX,20+YY),1,BF
- 2320 LINE(0+XX,0+YY)-(5+XX,20+YY),1,BF
- 2330 LINE(25+XX,20+YY)-(30+XX,40+YY),1,BF
- 2340 LINE(0+XX,35+YY)-(30+XX,40+YY),1,BF
- 2345 TAAB=TAAB+35
- 2346 RETURN
- 2370 REM *** SIX ***
- 2371 XX=TAAB:YY=LOT
- 2380 LINE(XX,YY)-(30+XX,5+YY),1,BF
- 2390 LINE(XX,YY)-(5+XX,25+YY),1,BF
- 2400 LINE(XX,20+YY)-(30+XX,40+YY),1,BF
- 2410 LINE(5+XX,25+YY)-(25+XX,35+YY),0,BF
- 2420 TAAB=TAAB+35
- 2430 RETURN
- 2450 REM *** SEVEN ***
- 2451 XX=TAAB:YY=LOT
- 2460 LINE (0+XX,0+YY)-(27+XX,5+YY),1,BF
- 2470 LINE (33+XX,YY)-(5+XX,40+YY),1:LINE (25+XX,YY)-(XX,40+YY),1:LINE (XX,40+YY)-(5+XX,40+YY),1:LINE(27+XX,YY)-(33+XX,YY),1
- 2480 PAINT (3+XX,39+YY),1,1
- 2490 TAAB=TAAB+35
- 2498 RETURN
- 2510 REM *** EIGHT *****
- 2511 XX=TAAB+2:YY=LOT
- 2520 LINE (0+XX,0+YY)-(30+XX,40+YY),1,BF
- 2530 LINE(5+XX,5+YY)-(25+XX,17+YY),0,BF
- 2540 LINE (5+XX,22+YY)-(25+XX,35+YY),0,BF
- 2550 TAAB=TAAB+35
- 2555 RETURN
- 2560 REM **** NINE *****
- 2561 XX=TAAB:YY=LOT
- 2563 LINE (XX,YY)-(XX+30,YY+40),1,BF:LINE(XX+5,YY+5)-(XX+25,YY+18),0,BF
- 2570 LINE (0+XX,22+YY)-(25+XX,40+YY),0,BF
- 2580 TAAB=TAAB+35:RETURN
- 2600 REM **** ZERO ***
- 2601 XX=TAAB+2:YY=LOT
- 2610 LINE (0+XX,0+YY)-(30+XX,40+YY),1,BF
- 2620 LINE (5+XX,5+YY)-(25+XX,35+YY),0,BF
- 2630 TAAB=TAAB+35:RETURN
- 2650 REM *** MINUS ***
- 2655 XX=TAAB:YY=LOT
- 2660 LINE (0+XX,13+YY)-(30+XX,17+YY),2,BF
- 2661 ANS2=NUM1-NUM2
- 2670 RETURN
- 2720 REM *** PLUS ****
- 2721 XX=TAAB:YY=LOT
- 2730 LINE (13+XX,0+YY)-(17+XX,30+YY),2,BF
- 2740 LINE (0+XX,13+YY)-(30+XX,17+YY),2,BF
- 2744 ANS2=NUM1+NUM2
- 2745 RETURN
- 2750 REM DIVIDE
- 2751 XX=TAAB:YY=LOT
- 2760 LINE (14+XX,5+YY)-(19+XX,10+YY),2,BF
- 2765 LINE (XX,YY+16)-(XX+36,YY+21),2,BF
- 2770 LINE (14+XX,25+YY)-(19+XX,30+YY),2,BF
- 2772 ANS2=NUM1/NUM2
- 2773 RETURN
- 2781 XX=TAAB:YY=LOT
- 2825 REM **** MULTIPLY
- 2826 XX=TAAB:YY=LOT
- 2828 FOR B =0 TO 4
- 2830 LINE(XX,YY+B)-(25+XX,30+YY+B),2
- 2850 LINE(25+XX,YY+B)-(XX,30+YY+B),2
- 2860 NEXT
- 2870 ANS2=NUM1*NUM2
- 3000 RETURN
- 3010 REM ***********************
- 3020 REM **** GET RID OF LAST NUMBER INPUTED ******
- 3030 IF S < 1 THEN RETURN
- 3040 S=S-1:LINE(PREVTAAB,LOT)-(TAAB,LOT+40),0,BF
- 3050 TAAB=PREVTAAB:PREVTAAB=PREVTAAB-35
- 3060 IF LOT >110 AND TAAB <23 THEN LOT = 70:PREVTAAB=TAAB3:TAAB=319
- 3070 RETURN
- 3080 TAAB=PREVTAAB:PREVTAAB=PREVTAAB-35
- 3090 IF LOT >110 AND TAAB <23 THEN LOT = 70:PREVTAAB=TAAB3:TAAB=319
- 3100 RETURN
- 5000 SCREEN 0:WIDTH 80:COLOR 3,1,1:CLS
- 5010 LOCATE 12,25:PRINT"FLASH CARD PRACTICE IS DONE!"
-